// login.js (页面二)

import { login, register } from '../../../util/util';

let loginDebounceTimer = null; // 登录防抖定时器
let registerDebounceTimer = null; // 注册防抖定时器
let registerCooldownTimer = null; // 注册冷却定时器

Page({
  data: {
    info: {
      user: '',
      pass: ''
    }
  },
  onLoad(options) {
    if (options.user && options.pass) {
      this.setData({
        'info.user': options.user,
        'info.pass': options.pass
      });
    }
  },
  formSubmit(e) {
    const type = e.detail.target.dataset.type;
    const info = e.detail.value;
   
    if (type === '1') {
      // 登录防抖处理
      this.debounceLogin(info.user, info.pass);
    }
  },

  debounceLogin(user, pass) {
    clearTimeout(loginDebounceTimer);
    loginDebounceTimer = setTimeout(() => {
      this.loginRegisterFn(user, pass, '1');
    }, 1000);
  },

  // 微信一键登录按钮点击事件
  async wxLogin() {
    try {
      // 执行微信自带的授权登录操作
      const authResult = await wx.getUserProfile({
        desc: '用于完善会员资料',
      });

      if (authResult.errMsg === 'getUserProfile:ok') {
        // 用户同意授权
        // 执行注册逻辑
        this.registerUserWithAuth(authResult.userInfo);
      } else {
        // 用户拒绝授权
        wx.showToast({
          title: '您拒绝了授权',
          icon: 'none'
        });
      }
    } catch (error) {
      // 授权登录失败
      console.error('授权登录失败', error);
      wx.showToast({
        title: '授权登录失败，请稍后重试',
        icon: 'none'
      });
    }
  },

  // 使用授权登录信息注册用户
  async registerUserWithAuth(userInfo) {
    try {
      // 构造注册所需的用户信息
      const registerInfo = {
        user: userInfo.nickName, // 使用昵称作为账号
        pass: '888888', // 默认密码
        avatar: userInfo.avatarUrl, // 头像
        city: userInfo.city // 城市信息
        // 其他用户信息字段
      };

      // 调用注册方法提交用户信息
      const registerResult = await register(registerInfo);

      if (registerResult === 1) {
        // 注册成功后执行登录操作
        this.loginRegisterFn(registerInfo.user, registerInfo.pass, '1');
      } else {
        // 用户已经注册，直接执行登录操作
        this.loginRegisterFn(registerInfo.user, registerInfo.pass, '1');
      }
    } catch (error) {
      // 注册失败
      wx.showToast({
        title: '不合法，请手动注册',
        icon: 'none'
      });
    }
  },

  async loginRegisterFn(user, pass, type) {
    wx.showLoading({
      title: type === '1' ? '登录中' : '注册中'
    });
    let res;
    if (type === '1') {
      res = await login({ user, pass });
    } else {
      res = await register({ user, pass });
    }
    wx.hideLoading();
    if (type === '1') {
      if (res.length > 0) {
        wx.showToast({
          title: '登录成功',
          icon: 'success'
        });
        wx.setStorageSync('user', res[0].user);
       
        // 在注册成功后延迟 1 秒跳转到登录页面
setTimeout(() => {
  wx.switchTab({
    url: '/pages/my/my'
  });
}, 1000);

      } else {
        wx.showToast({
          title: '账号或者密码错误',
          icon: 'none'
        });
      }
    } else {
      if (res === 1) {
        wx.showToast({
          title: '注册成功',
          icon: 'success'
        });
      }
    }
  },

  validateInput(info) {
    const reg = /^[A-Za-z0-9]{3,}$/;
    return reg.test(info.user) && reg.test(info.pass);
  },
  redirectToRegister() {
    wx.navigateTo({
      url: '/pages/my/register/register',
    });
  },
});
